#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>

void show_menu(char *buf)
{
    system("clear");
    printf("\n\n\n \t\t\t 欢迎来到%s界面\n",buf);
    printf("\n\n\n 按回车健返回主菜单");
    char buf_1[12];
    scanf("%s",buf_1);
}

int main(int argc, char const *argv[])
{
    //二维数组
    char menu_arr[10][128];
    int menu_len=0;
    char menu[128];
    int option;//选择
    char option_str[128];//选择

    system("clear");

    //往菜单数组内加入菜单项
    for (size_t i = 0; i < 10; i++)
    {
        system("clear");
        printf("输入1进行添加菜单 输入0退出添加菜单");
        option=0;
        scanf("%d",&option);

        //用户选择了0退出编辑
        if(0==option)
        {
            if(0==menu_len)
            {
                printf("未输入菜单项 退出程序\n");
                return 0;
            }
            //退出循环
            break;
        }
        else
        {
            //清空字符串
            //将数组 arr 的所有字节设置为 0
            memset(menu,0,sizeof(menu));

            //写入菜单字符串
            printf("请输入菜单项:");
            scanf("%s",menu);

            //将菜单字符串写入到菜单中
            strcpy(menu_arr[i],menu);

            //迭代次数
            menu_len++;
        }
    }
    
    //选择菜单项目 通过选择不同的菜单项 从而跳转到不同的函数
    while (1)
    {
       system("clear");
       //打印菜单项目
       for (size_t i = 0; i < menu_len; i++)
       {
          printf("%ld、%s\n",i+1,menu_arr[i]);
       }
       //选择菜单项目
       printf("请输出你选择的菜单选项:(请输入选项的文字)");

       //清空字符串
       memset(option_str,0,sizeof(option_str));
       scanf("%s",option_str);

       //通过if else if来分支进入函数
       if(!strcmp(option_str,menu_arr[0]))
       {
        show_menu(option_str);
       }
       else if(!strcmp(option_str,menu_arr[1]))
       {
        show_menu(option_str);
       }
       else if(!strcmp(option_str,menu_arr[2]))
       {
        show_menu(option_str);
       }
       else
       {
        printf("输入有误 请重新输入\n");
        sleep(2);
       }
    }
    

    return 0;
}
